#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QLabel>
#include <QAction>
#include <QString>
#include <QImage>
#include "creatsquaredialog.h"//creatsquaredialog class
#include "judgescenedialog.h"//judgescenedialog class
#define QT_NO_OPENGL
class QLabel;
class QAction;
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
protected:
signals:
    void sendSquareRange(int x_Value_Max,int y_Value_Max);
private slots:
    void open();//打开文件
    void save();//保存文件
    void test();//测试函数
    void creatASquare();//创建一个正方形区域 槽
    void judgeASquare(int i);
    void receiveCreatSquare(int x_Value,int y_Value,int side_Length);//接受正方形相关量 槽
private:
    Ui::MainWindow *ui;
    void creatActions();//构建菜单
    bool okToOpen();//根据两侧图片bool变量的值判断是否可以继续open
    bool okToSave();//根据两侧图片bool变量的值判断是否可以继续save
    bool okToTest();//根据两侧图片bool变量的值判断是否可以继续test
    bool okToCreatSquare();//根据两侧图片bool变量的值判断是否可以继续test
    bool loadFile(const QString &fileName);//加载文件
    bool saveFile();//保存文件为...
    bool testFile();
    bool creatSquare();//creat a new square with python
    void setCurrentFile(const QString &fileName);
    QString strippedName(const QString &fullfileName);//根据文件名设置窗口名时调用的一个函数

    enum {MAXNUMBER=2};//Max square number
    int squareXValue;
    int squareYValue;
    int squareSideLength;
    int operationType;
    int squareNumber;//number of squares (done)
    CreatSquareDialog *creatSquareDialog;
    JudgeSceneDialog *judgeSceneDialog;
    QString leftFile;
    QString rightFile;
    QImage *previousImage;
    QImage *nextImage;
    bool isLeftEmpty=true;
    bool isRightEmpty=true;
};
#endif // MAINWINDOW_H
